package com.irdstudio.efp.esb.api.bean.sed.yx;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.irdstudio.basic.framework.core.annotation.BeanMapKey;
import com.irdstudio.basic.framework.core.annotation.DicType;
import com.irdstudio.basic.framework.core.annotation.NumType;
import com.irdstudio.basic.framework.core.constant.SDicCertTypeEnum;
import com.irdstudio.basic.framework.core.constant.SDicChannelType;
import com.irdstudio.efp.esb.api.common.sed.LetterQueryType;
import com.irdstudio.efp.esb.api.common.sed.SedEnum;
import com.irdstudio.efp.nls.common.constant.NlsApplyInfoEnums;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.lang.NonNull;

/**
* 普税贷产品对税e贷产品的此部分代码做了复用
* 说明：为了保证功能的复用性、提升开发的工作效率，对该代码进行了复用
* 评估是否会影响线上功能：否
* 评估时间：2020/5/25
* 处理方案：保留复用
*/
/**
 * 需求编号：【2019D0519】（业务提的需求编号）
 * 问题编号：【xxxxxxx】（若不是因为修复问题而新增该类，则留空）
 * 开发人员：qiuyf
 * 创建日期：2019年4月17日 上午11:12:33
 * 功能描述：个人用信申请查询请求实体类
 */
@JsonPropertyOrder(alphabetic = true)
public class ReqPersonLetterAppBean {

	@BeanMapKey("UseCrdtAppFlowNo")
	@JsonProperty("UseCrdtAppFlowNo")
	@Length(max = 64)
	private String UseCrdtAppFlowNo;	//用信申请流水号（原交易流水号）

	@BeanMapKey("CrdtAppFlowNo")
	@JsonProperty("CrdtAppFlowNo")
	@Length(max = 64)
	private String CrdtAppFlowNo;	//授信申请流水号

	@BeanMapKey("ClntNo")
	@JsonProperty("ClntNo")
	@Length(max = 20)
	private String ClntNo;	//客户号

	@BeanMapKey("CertTp")
	@JsonProperty("CertTp")
	@Length(max = 32)
	@DicType(dicType = SDicCertTypeEnum.class, method = "getValue")
	private String CertTp;	//证件类型

	@BeanMapKey("CertNo")
	@JsonProperty("CertNo")
	@Length(max = 32)
	private String CertNo;	//证件号码

	@BeanMapKey("PrdctID")
	@JsonProperty("PrdctID")
	@Length(max = 8)
	@DicType(dicType = SedEnum.PrdCodeEnum.class, method = "getValue")
	private String PrdctID;	//产品ID

	@BeanMapKey("AprvSt")
	@JsonProperty("AprvSt")
	@Length(max = 3)
	@DicType(dicType = NlsApplyInfoEnums.NlsApplyState.class, method = "getKey")
	private String AprvSt;	//审批状态

	@BeanMapKey("ChanNo")
	@JsonProperty("ChanNo")
	@Length(max = 3)
	@DicType(dicType = SDicChannelType.class, method = "getValue")
	private String ChanNo;	//渠道编号

	@BeanMapKey("QryTp")
	@JsonProperty("QryTp")
	@Length(max = 3)
	@NonNull
	@NotEmpty
	@DicType(dicType = LetterQueryType.class, method = "getKey")
	private String QryTp;	//查询类型 

	@BeanMapKey("PgNo")
	@JsonProperty("PgNo")
	@NumType
	@Length(max = 9)
	private String PgNo;	//页码
	
	@BeanMapKey("PerPgRcrNum")
	@JsonProperty("PerPgRcrNum")
	@NumType
	@Length(max = 9)
	private String PerPgRcrNum;	//每页显示条数

	
	public String getUseCrdtAppFlowNo() {
		return UseCrdtAppFlowNo;
	}

	public void setUseCrdtAppFlowNo(String useCrdtAppFlowNo) {
		UseCrdtAppFlowNo = useCrdtAppFlowNo;
	}

	public String getCrdtAppFlowNo() {
		return CrdtAppFlowNo;
	}

	public void setCrdtAppFlowNo(String crdtAppFlowNo) {
		CrdtAppFlowNo = crdtAppFlowNo;
	}

	public String getClntNo() {
		return ClntNo;
	}

	public void setClntNo(String clntNo) {
		ClntNo = clntNo;
	}

	public String getCertTp() {
		return CertTp;
	}

	public void setCertTp(String certTp) {
		CertTp = certTp;
	}

	public String getCertNo() {
		return CertNo;
	}

	public void setCertNo(String certNo) {
		CertNo = certNo;
	}

	public String getPrdctID() {
		return PrdctID;
	}

	public void setPrdctID(String prdctID) {
		PrdctID = prdctID;
	}

	public String getAprvSt() {
		return AprvSt;
	}

	public void setAprvSt(String aprvSt) {
		AprvSt = aprvSt;
	}

	public String getChanNo() {
		return ChanNo;
	}

	public void setChanNo(String chanNo) {
		ChanNo = chanNo;
	}

	public String getQryTp() {
		return QryTp;
	}

	public void setQryTp(String qryTp) {
		QryTp = qryTp;
	}

	public String getPgNo() {
		return PgNo;
	}

	public void setPgNo(String pgNo) {
		PgNo = pgNo;
	}

	public String getPerPgRcrNum() {
		return PerPgRcrNum;
	}

	public void setPerPgRcrNum(String perPgRcrNum) {
		PerPgRcrNum = perPgRcrNum;
	}

}
